#pragma once

#include "StlWrapper.h"
#include "StlStringAndStreams.h"

struct Event
{
	Event(size_t i_minute, const STL::string& i_msg)
		:minute(i_minute)
		,message(i_msg)
	{
	}

	size_t		minute;
	STL::string message;
};
typedef STL::vector<Event>	EventCollection;
typedef STL::map<STL::string, STL::vector<STL::string>> EventMap;

class EventGenerator
{
public:
	explicit EventGenerator(const STL::string& i_filename);
	const STL::string& RandomEventMessageInCategory(const STL::string& i_category, const STL::string& i_first, const STL::string& i_second) const;
	const STL::string& RandomEventMessageInCategory(const STL::string& i_category, const STL::string& i_name) const;
	const STL::string& RandomEventMessageInCategory(const STL::string& i_category) const;

private:
	void ParseEventMessages(const STL::string& i_filename);

	EventMap m_eventMessages;
};
